package com.manthano.applogin.management.service;

import com.manthano.applogin.management.bo.AppUser;
import com.manthano.applogin.management.bo.LoginUser;
import com.manthano.applogin.management.exception.UserException;

/**
 * @author Dell
 */
public interface AppUserService
{
	/**
	 * @param appUser
	 * @return LoginUser
	 * @throws UserException
	 */
	public AppUser addUser(AppUser appUser) throws UserException;

	/**
	 * @param appUser
	 * @return boolean
	 * @throws UserException
	 */
	public Boolean updateUser(AppUser appUser) throws UserException;

	/**
	 * @param userId
	 * @return boolean
	 * @throws UserException
	 */
	public Boolean activateUser(String userId) throws UserException;

	/**
	 * @param userId
	 * @return boolean
	 * @throws UserException
	 */
	public Boolean deactivateUser(String userId) throws UserException;

	/**
	 * @param userId
	 * @return boolean
	 * @throws UserException
	 */
	public Boolean removeUser(String userId) throws UserException;

	/**
	 * @param userId
	 * @return LoginUser
	 * @throws UserException
	 */
	public AppUser getUser(String userId) throws UserException;

	/**
	 * @param userName
	 * @return LoginUser
	 * @throws UserException
	 */
	public LoginUser getUserByUserName(String userName) throws UserException;

	/**
	 * @param userId
	 * @return LoginUser
	 * @throws UserException
	 */
	public LoginUser getUserById(final String userId) throws UserException;
}
